home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / shareware / games / hextrix / pieces.f < prev   
Text File  |  1994-11-17  |  4KB  |  142 lines

  1. \ ******************************************************
  2. \
  3. \ Definition of pieces
  4. \
  5. \ Note all pieces are assumed to have the same number of dots.
  6. \
  7. \ ******************************************************
  8.  
  9. \ mdh - slight mods to be compatible with new locals (v2.0+) in beta state,
  10. \       everything still works with V2.0 and earlier.  Final v2.0+ locals
  11. \       will be completely backward-compatible.
  12.  
  13.  
  14. ANEW Task-Pieces
  15.  
  16. 4 CONSTANT DotsPerPiece
  17. 2 CELL * DotsPerPiece * CONSTANT SinglePieceSize
  18.  
  19. : getDcr { addrOfPiece rotationNr dotnr | Dc Dr -- Dc Dr }
  20. \ give relative position of individual dots
  21.    rotationNr SinglePieceSize *
  22.    2 CELL * dotNr * + addrOfPiece +
  23.    dup @ -> Dc
  24.    CELL + @ -> Dr
  25.    Dc Dr  \ added mdh
  26. ;
  27.  
  28. : ,, ( a b -- store a & b at here, a first)
  29.    swap , ,
  30. ;
  31.  
  32. CREATE Piece0
  33.  0 -2 ,,    0 -1 ,,    0  0 ,,    0  1 ,,
  34.  2  0 ,,    1  0 ,,    0  0 ,,   -1  0 ,,
  35.  2  2 ,,    1  1 ,,    0  0 ,,   -1 -1 ,,
  36.  0  2 ,,    0  1 ,,    0  0 ,,    0 -1 ,,
  37. -2  0 ,,   -1  0 ,,    0  0 ,,    1  0 ,,
  38. -2 -2 ,,   -1 -1 ,,    0  0 ,,    1  1 ,,
  39.  
  40.  
  41. CREATE Piece1
  42.  0 , -1 ,    0 ,  0 ,     1 ,  1 ,     1 ,  2 ,
  43.  1 ,  0 ,    0 ,  0 ,     0 ,  1 ,    -1 ,  1 ,
  44.  1 ,  1 ,    0 ,  0 ,    -1 ,  0 ,    -2 , -1 ,
  45.  0 ,  1 ,    0 ,  0 ,    -1 , -1 ,    -1 , -2 ,
  46. -1 ,  0 ,    0 ,  0 ,     0 , -1 ,     1 , -1 ,
  47. -1 , -1 ,    0 ,  0 ,     1 ,  0 ,     2 ,  1 ,
  48.  
  49.  
  50. CREATE Piece2
  51.  0 -1 ,,    0  0 ,,   -1  0 ,,   -1  1 ,,
  52.  1  0 ,,    0  0 ,,   -1 -1 ,,   -2 -1 ,,
  53.  1  1 ,,    0  0 ,,    0 -1 ,,   -1 -2 ,,
  54.  0  1 ,,    0  0 ,,    1  0 ,,    1 -1 ,,
  55. -1  0 ,,    0  0 ,,    1  1 ,,    2  1 ,,
  56. -1 -1 ,,    0  0 ,,    0  1 ,,    1  2 ,,
  57.  
  58. CREATE Piece3  ( Its all symetric! )
  59. -1 -1 ,,    0  0 ,,    1  0 ,,    0  1 ,,
  60.  0 -1 ,,    0  0 ,,   -1  0 ,,    1  1 ,,
  61. -1 -1 ,,    0  0 ,,    1  0 ,,    0  1 ,,
  62.  0 -1 ,,    0  0 ,,   -1  0 ,,    1  1 ,,
  63. -1 -1 ,,    0  0 ,,    1  0 ,,    0  1 ,,
  64.  0 -1 ,,    0  0 ,,   -1  0 ,,    1  1 ,,
  65.  
  66. CREATE Piece4
  67.  0 -1 ,,    0  0 ,,   -1 -1 ,,    1  0 ,,
  68.  1  0 ,,    0  0 ,,    0 -1 ,,    1  1 ,,
  69.  1  1 ,,    0  0 ,,    1  0 ,,    0  1 ,,
  70.  0  1 ,,    0  0 ,,   -1  0 ,,    1  1 ,,
  71. -1  0 ,,    0  0 ,,    0  1 ,,   -1 -1 ,,
  72. -1 -1 ,,    0  0 ,,   -1  0 ,,    0 -1 ,,
  73.  
  74. CREATE Piece5
  75. -1 -1 ,,    0 -1 ,,    1  0 ,,    1  1 ,,
  76.  0 -1 ,,    1  0 ,,    1  1 ,,    0  1 ,,
  77.  1  0 ,,    1  1 ,,    0  1 ,,   -1  0 ,,
  78.  1  1 ,,    0  1 ,,   -1  0 ,,   -1 -1 ,,
  79.  0  1 ,,   -1  0 ,,   -1 -1 ,,    0 -1 ,,
  80. -1  0 ,,   -1 -1 ,,    0 -1 ,,    1  0 ,,
  81.  
  82. CREATE Piece6
  83. -1 -1 ,,    0  0 ,,    0  1 ,,    0  2 ,,
  84.  0 -1 ,,    0  0 ,,   -1  0 ,,   -2  0 ,,
  85.  1  0 ,,    0  0 ,,   -2 -2 ,,   -1 -1 ,,
  86.  1  1 ,,    0  0 ,,    0 -1 ,,    0 -2 ,,
  87.  0  1 ,,    0  0 ,,    2  0 ,,    1  0 ,,
  88. -1  0 ,,    0  0 ,,    1  1 ,,    2  2 ,,
  89.  
  90. CREATE Piece7
  91.  1  0 ,,    0  0 ,,    0  1 ,,    0  2 ,,
  92.  1  1 ,,    0  0 ,,   -1  0 ,,   -2  0 ,,
  93.  0  1 ,,    0  0 ,,   -1 -1 ,,   -2 -2 ,,
  94. -1  0 ,,    0  0 ,,    0 -1 ,,    0 -2 ,,
  95. -1 -1 ,,    0  0 ,,    1  0 ,,    2  0 ,,
  96.  0 -1 ,,    0  0 ,,    1  1 ,,    2  2 ,,
  97.  
  98. CREATE Piece8
  99. -1 -1 ,,    0 -1 ,,    0  0 ,,    0  1 ,,
  100.  0 -1 ,,    1  0 ,,    0  0 ,,   -1  0 ,,
  101.  1  0 ,,    1  1 ,,    0  0 ,,   -1 -1 ,,
  102.  1  1 ,,    0  1 ,,    0  0 ,,    0 -1 ,,
  103.  0  1 ,,   -1  0 ,,    0  0 ,,    1  0 ,,
  104. -1  0 ,,   -1 -1 ,,    0  0 ,,    1  1 ,,
  105.  
  106.  
  107. CREATE Piece9
  108.  1  0 ,,    0 -1 ,,    0  0 ,,    0  1 ,,
  109.  1  1 ,,    1  0 ,,    0  0 ,,   -1  0 ,,
  110.  0  1 ,,    1  1 ,,    0  0 ,,   -1 -1 ,,
  111. -1  0 ,,    0  1 ,,    0  0 ,,    0 -1 ,,
  112. -1 -1 ,,   -1  0 ,,    0  0 ,,    1  0 ,,
  113.  0 -1 ,,   -1 -1 ,,    0  0 ,,    1  1 ,,
  114.  
  115.  
  116.  
  117. 10 ARRAY Pieces
  118.  
  119. : init-pieces ( To make it CLONE compatible )
  120.     Piece0   0 Pieces !
  121.     Piece1   1 Pieces !
  122.     Piece2   2 Pieces !
  123.     Piece3   3 Pieces !
  124.     Piece4   4 Pieces !
  125.     Piece5   5 Pieces !
  126.     Piece6   6 Pieces !
  127.     Piece7   7 Pieces !
  128.     Piece8   8 Pieces !
  129.     Piece9   9 Pieces !
  130. ;
  131.  
  132. : .piece { addr -- }  \ had to add '--' mdh
  133.    cr
  134.    6 0 DO
  135.       4 0 DO
  136.          addr j i getDcr swap 3 .r 3 .r 5 spaces
  137.       LOOP
  138.       cr
  139.    LOOP
  140. ;
  141.  
  142.